/**
 * This file is part of Idegen, the application to create IDE project files.
 *
 * @copyright Copyright (c) 2011-2012, Walter Tamboer http://waltertamboer.nl
 * @file Idegen/Generator/IGenerator.hpp
 */

#ifndef IDEGEN_GENERATOR_IGENERATOR_HPP
#define IDEGEN_GENERATOR_IGENERATOR_HPP

namespace Idegen
{
	class Settings;
	class IdegenGenerator;

	/** The generator interface. */
	class IGenerator
	{
	public:
		/** Cleans up all the resources used by this class. */
		virtual ~IGenerator();
		
		/**
		 * Generates the project for this generator.
		 *
		 * @param[in] settings The settings used for generating.
		 * @param[in] generator The generator to output.
		 */
		virtual void Generate( Settings* settings, IdegenGenerator* generator ) = 0;
	};
}

#endif
